from rest_framework.permissions import BasePermission


class AdminAuth(BasePermission):
    """超级管理员，管理员权限"""

    def has_permission(self, request, view):
        """
        request.user
        认证通过：　AbstractUser对象
        未认证通过： AnonymousUser对象
        request.user.is_authenticated(): 是否认证/登录通过
        :param request:
        :param view:
        :return:True:校验通过，False:校验不通过
        """
        # return True
        action_choice = ['create', 'update']
        if request.user.is_authenticated:
            # 如果是认证用户
            if view.action == 'destroy' and not request.user.role != 0:
                # 删除操作需要超级管理员权限
                return False
            if view.action in action_choice and request.user.role > 1:
                # 创建，修改需要普通管理员权限以上
                return False
            if request.user.role == 3:
                # 前台用户无权限
                return False
            return True
        else:
            return False


class ServiceAuth(BasePermission):
    """客服人员权限"""

    def has_permission(self, request, view):
        """
        request.user
        认证通过：　AbstractUser对象
        未认证通过： AnonymousUser对象
        request.user.is_authenticated(): 是否认证/登录通过
        :param request:
        :param view:
        :return:True:校验通过，False:校验不通过
        """
        pass
